<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <title>Manual</title>
    <link rel="stylesheet" href="style.css">
    <script src="assets/eruda.js"></script>
    <script src="boot.js"></script>
    <script src="util.js"></script>
</head>
<body>
<header>Manual Test</header>
<nav>
    <ul>
        <li>
            <a href="#" id="issue17">#17</a>
        </li>
        <li>
            <a href="#" id="plugin">Plugin</a>
        </li>
        <li>
            <a href="#" id="issue29">#29</a>
        </li>
        <li>
            <a href="#" id="issue31">#31</a>
        </li>
        <li>
            <a href="#" id="issue33">#33</a>
        </li>
        <li>
            <a href="#" id="trigger-error">Trigger Error</a>
        </li>
    </ul>
</nav>
<script>
    function addClickEvent(id, listener)
    {
        document.getElementById(id).addEventListener('click', function (e)
        {
            e.preventDefault();
            listener();
        }, false);
    }
    addClickEvent('issue17', function ()
    {
        var B = function () {};
        var A = function () { this._data = 'eruda' };
        A.prototype = Object.create(B.prototype);
        Object.defineProperty(A.prototype, 'data', {
            get: function () { return this._data }
        });
        var a = new A();
        console.log(a);
    });
    addClickEvent('plugin', function ()
    {
        eruda.add({name: 'test'});
        eruda.add(function (eruda)
        {
            return {
                name: 'test2',
                init: function ($el)
                {
                    this._$el = $el;
                    this._$el.html('This is the new plugin');
                }
            };
        });
        var Tool = eruda.Tool;
        eruda.add(new (Tool.extend({
            name: 'test3',
            init: function ($el) 
            {
                this.callSuper(Tool, 'init', arguments);
                this._$el.html('This is another new plugin');
            }
        })));
    });
    addClickEvent('issue29', function () 
    {
        new Promise(function (resolve, reject)
        {
            resolve();
        }).then(function (res)
        {
            var a = res.a;
        })
    });
    addClickEvent('issue31', function () 
    {
        addEventListener('resize', function () {});
    });
    addClickEvent('issue33', function () 
    {
        util.evalCss(':root {--test: 10px;}');
    });
    addClickEvent('trigger-error', function () 
    {
        triggerError();
    });
</script>
<script>boot();</script>
</body>
</html>
